package com.itheima.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.*;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import javax.sql.DataSource;

//Configuration注解用于设定当前类为配置类
@Configuration
@ComponentScan("com.itheima")//Spring整合mybatis，包扫描，主要扫描的是项目中的AccountServiceImpl类
@PropertySource("classpath:jdbc.properties")//Spring整合mybatis，主配置类中读properties
@Import({JdbcConfig.class,MybatisConfig.class})//Spring整合mybatis，引入数据源配置类,引入Mybatis的配置类
//@ComponentScan("com.itheima.config") //引入外部配置类方式一
//@ComponentScan("com.itheima.dao") //注入引用数据类型，在SpringConfig中扫描BookDao
//@Import({JdbcConfig.class}) //引入外部配置类方式二:使用Import引入,@Import参数需要的是一个数组，可以引入多个配置类,在配置类中只能写一次
//ComponentScan注解用于设定扫描路径，此注解只能添加一次，多个数据请用数组格式
//@ComponentScan("com.itheima")
//PropertySource加载properties文件的属性值
//如果读取的properties配置文件有多个，可以使用@PropertySource的属性来指定多个配置文件
//@PropertySource注解属性不支持使用通配符*,运行会报错
//@PropertySource注解属性中可以把classpath:加上，代表从当前项目的根路径找文件
//@PropertySource("jdbc.properties")
//@EnableAspectJAutoProxy//开启注解格式AOP功能
@EnableTransactionManagement//开启事务注解
public class SpringConfig {
   /* //注册开发管理第三方bean,在配置类中添加一个方法
    //@Bean注解的作用是将方法的返回值制作为Spring管理的一个bean对象
    @Bean
    public DataSource dataSource(){
        DruidDataSource ds = new DruidDataSource();
        ds.setDriverClassName("com.mysql.jdbc.Driver");
        ds.setUrl("jdbc:mysql://localhost:3306/spring_db");
        ds.setUsername("root");
        ds.setPassword("123456");
        return ds;
    }*/

}
